package com.gaomall.seckill.controller;

import com.gaomall.seckill.domain.Users;
import com.gaomall.seckill.enums.ResponseStatusCode;
import com.gaomall.seckill.exception.GoodsException;
import com.gaomall.seckill.mapper.UsersMapper;
import com.gaomall.seckill.service.IUserService;
import com.gaomall.seckill.utils.ResultVOUtil;
import com.gaomall.seckill.vo.ResultVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * 使用BeanUtils进行属性拷贝
 * BeanUtils.copyProperties(productInfo, productInfoVo);
 * 这就表示把productInfo的属性拷贝到productInfoVo对象中去。
 * 注意：使用这个工具有两点要注意，第一个就是这两个对象的属性名要一致；第二就是null值也会拷贝进去，
 * 所以如果productInfo中有个属性值为null,进行拷贝后productInfoVo对应的属性值也会是null，
 * 就算拷贝之前设置了值也会覆盖掉，所以要先拷贝再赋值。
 *
 *
 */
@RestController
// lombok + @Slf4j 日志使用 log.error();
@Slf4j
public class IndexController{

    @Autowired
    IUserService iUserService;

    @Autowired
    private UsersMapper usersMapper;

    @RequestMapping("/")
    public ResultVO home(){

        log.error( "【测试】商品不存在，code={}" , 123 );

        // 构造一条测试数据
        Users users = new Users();

        Byte status = 1;

        users.setTelphone("13601945598");
        users.setPasswd("123456");
        users.setNickName("gaodevops");
        users.setSalt("123456");
        users.setToken("123123123");
        users.setLastIp("192.168.1.1");
        users.setAccountAmount(BigDecimal.valueOf(200.00));
        users.setStatus(status);
        users.setCreatedTime(new Date());
        users.setUpdateTime(new Date());
        users.setLastTime(new Date());

        // 插入数据
          usersMapper.insert(users);
        return null;

//        iUserService.register();

//        throw new  GoodsException(ResponseStatusCode.GOODS_NOT_EXIST.getReturn_code(),
//                ResponseStatusCode.GOODS_NOT_EXIST.getReturn_msg());
//        Map<String, String> map = new HashMap<>();
//        map.put("orderId", "123");
//        map.put("orderName", "");

//        return ResultVOUtil.error(600, "请登录");
//        return ResultVOUtil.success("gao", map);
//        return ResultVOUtil.success("HELLE");
//        return "index";
    }
}
